package com.zxjbyte.yiyi.module.system.util;

import com.zxjbyte.yiyi.framework.common.exception.ServiceException;
import lombok.experimental.UtilityClass;

import java.util.Optional;

/**
 * @Author zhangxingjia
 * @Date 2024/1/12 14:11
 * @Version: 1.0
 */
@UtilityClass
public class OptionalUtil {

    public <T> T getOrThrow(Optional<T> optional, String errorMessage) {
        return optional.orElseThrow(() -> new ServiceException(errorMessage));
    }

    /**
     * 获取oss组件依赖注入
     * @param optional
     * @param <T>
     * @return
     */
    public <T> T getOssInjectOrThrow(Optional<T> optional) {
        return getOrThrow(optional,"请在配置文件中启用oss组件的使用，" +
                "请配置【yiyi.oss.enabled: true】来启用。");
    }

}
